﻿using System;
using FastFood.Business.Entities.Tipos;

namespace FastFood.Business.Entities
{
    public partial class Movimientos
    {
        public int insumoID { get; set; }

        public string nombreInsumo { get; set; }

        public string numeroLote { get; set; }

        public string nombreAlmacen { get; set; }

        public string codigo
        {
            get
            {
                var movimiento = (MotivoMovimiento)Enum.Parse(typeof(MotivoMovimiento), motivo.ToString());
                return "MOV" + ((byte)movimiento).ToString().PadLeft(2, '0') + " - " + operacionID.ToString().PadLeft(5, '0');
            }
        }

        public string descripcion
        {
            get
            {
                var mensaje = string.Empty;
                var movimiento = (MotivoMovimiento)Enum.Parse(typeof(MotivoMovimiento), motivo.ToString());
                
                switch (movimiento)
                {
                    case MotivoMovimiento.Compras:
                        mensaje = "Ingreso por Compra.";
                        break;
                    case MotivoMovimiento.Ventas:
                        mensaje = "Salida por Venta.";
                        break;
                    case MotivoMovimiento.Traslados:
                        mensaje = "Translado de Producto.";
                        break;
                    case MotivoMovimiento.Cocina:
                        mensaje = "Consumo en Cocina.";
                        break;
                    case MotivoMovimiento.ControlCalidad:
                        mensaje = "Salida por Control de Calidad.";
                        break;
                    case MotivoMovimiento.Expiracion:
                        mensaje = "Bajas por Obsolescencia.";
                        break;
                    case MotivoMovimiento.IngresoPorAjuste:
                        mensaje = "Ingreso por Ajuste de Inventario.";
                        break;
                    case MotivoMovimiento.SalidaPorAjuste:
                        mensaje = "Salida por Ajuste de Inventario.";
                        break;
                    default:
                        break;
                }
                return mensaje;
            }
        }
    }
}
